1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.glib.gstrfuncs;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import core.stdc.config;
34 import std.c.stdarg;
35 
36 extern (C):
37 
38 alias _Anonymous_0 GAsciiType;
39 
40 version(Derelict_Link_Static)
41 {
42     //extern( C ) nothrow 
43     //{
44     //    const guint16* g_ascii_table;
45     //}
46 }
47 else
48 {
49     extern( C ) nothrow 
50     {
51         alias da_g_ascii_table = const guint16*;
52     }
53 
54     __gshared
55     {
56         da_g_ascii_table g_ascii_table;
57     }
58 }
59 
60 
61 enum _Anonymous_0
62 {
63 	G_ASCII_ALNUM = 1,
64 	G_ASCII_ALPHA = 2,
65 	G_ASCII_CNTRL = 4,
66 	G_ASCII_DIGIT = 8,
67 	G_ASCII_GRAPH = 16,
68 	G_ASCII_LOWER = 32,
69 	G_ASCII_PRINT = 64,
70 	G_ASCII_PUNCT = 128,
71 	G_ASCII_SPACE = 256,
72 	G_ASCII_UPPER = 512,
73 	G_ASCII_XDIGIT = 1024
74 }
75 
76 version(Derelict_Link_Static)
77 {
78     extern( C ) nothrow 
79     {
80 	    gchar g_ascii_tolower(gchar c);
81         gchar g_ascii_toupper(gchar c);
82         gint g_ascii_digit_value(gchar c);
83         gint g_ascii_xdigit_value(gchar c);
84         gchar* g_strdelimit(gchar* string, const(gchar)* delimiters, gchar new_delimiter);
85         gchar* g_strcanon(gchar* string, const(gchar)* valid_chars, gchar substitutor);
86         const(gchar)* g_strerror(gint errnum);
87         const(gchar)* g_strsignal(gint signum);
88         gchar* g_strreverse(gchar* string);
89         gsize g_strlcpy(gchar* dest, const(gchar)* src, gsize dest_size);
90         gsize g_strlcat(gchar* dest, const(gchar)* src, gsize dest_size);
91         gchar* g_strstr_len(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle);
92         gchar* g_strrstr(const(gchar)* haystack, const(gchar)* needle);
93         gchar* g_strrstr_len(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle);
94         gboolean g_str_has_suffix(const(gchar)* str, const(gchar)* suffix);
95         gboolean g_str_has_prefix(const(gchar)* str, const(gchar)* prefix);
96         gdouble g_strtod(const(gchar)* nptr, gchar** endptr);
97         gdouble g_ascii_strtod(const(gchar)* nptr, gchar** endptr);
98         guint64 g_ascii_strtoull(const(gchar)* nptr, gchar** endptr, guint base);
99         gint64 g_ascii_strtoll(const(gchar)* nptr, gchar** endptr, guint base);
100         gchar* g_ascii_dtostr(gchar* buffer, gint buf_len, gdouble d);
101         gchar* g_ascii_formatd(gchar* buffer, gint buf_len, const(gchar)* format, gdouble d);
102         gchar* g_strchug(gchar* string);
103         gchar* g_strchomp(gchar* string);
104         gint g_ascii_strcasecmp(const(gchar)* s1, const(gchar)* s2);
105         gint g_ascii_strncasecmp(const(gchar)* s1, const(gchar)* s2, gsize n);
106         gchar* g_ascii_strdown(const(gchar)* str, gssize len);
107         gchar* g_ascii_strup(const(gchar)* str, gssize len);
108         gint g_strcasecmp(const(gchar)* s1, const(gchar)* s2);
109         gint g_strncasecmp(const(gchar)* s1, const(gchar)* s2, guint n);
110         gchar* g_strdown(gchar* string);
111         gchar* g_strup(gchar* string);
112         gchar* g_strdup(const(gchar)* str);
113         gchar* g_strdup_printf(const(gchar)* format, ...);
114         gchar* g_strdup_vprintf(const(gchar)* format, va_list args);
115         gchar* g_strndup(const(gchar)* str, gsize n);
116         gchar* g_strnfill(gsize length, gchar fill_char);
117         gchar* g_strconcat(const(gchar)* string1, ...);
118         gchar* g_strjoin(const(gchar)* separator, ...);
119         gchar* g_strcompress(const(gchar)* source);
120         gchar* g_strescape(const(gchar)* source, const(gchar)* exceptions);
121         gpointer g_memdup(gconstpointer mem, guint byte_size);
122         gchar** g_strsplit(const(gchar)* string, const(gchar)* delimiter, gint max_tokens);
123         gchar** g_strsplit_set(const(gchar)* string, const(gchar)* delimiters, gint max_tokens);
124         gchar* g_strjoinv(const(gchar)* separator, gchar** str_array);
125         void g_strfreev(gchar** str_array);
126         gchar** g_strdupv(gchar** str_array);
127         guint g_strv_length(gchar** str_array);
128         gchar* g_stpcpy(gchar* dest, const(char)* src);
129     }
130 }
131 else
132 {
133     extern( C ) nothrow 
134     {
135 	    alias da_g_ascii_tolower = gchar function(gchar c);																		
136         alias da_g_ascii_toupper = gchar function(gchar c);																		
137         alias da_g_ascii_digit_value = gint function(gchar c);																	
138         alias da_g_ascii_xdigit_value = gint function(gchar c);																	
139         alias da_g_strdelimit = gchar* function(gchar* string, const(gchar)* delimiters, gchar new_delimiter);					
140         alias da_g_strcanon = gchar* function(gchar* string, const(gchar)* valid_chars, gchar substitutor);						
141         alias da_g_strerror = const(gchar)* function(gint errnum);																
142         alias da_g_strsignal = const(gchar)* function(gint signum);																
143         alias da_g_strreverse = gchar* function(gchar* string);																	
144         alias da_g_strlcpy = gsize function(gchar* dest, const(gchar)* src, gsize dest_size);									
145         alias da_g_strlcat = gsize function(gchar* dest, const(gchar)* src, gsize dest_size);									
146         alias da_g_strstr_len = gchar* function(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle);				
147         alias da_g_strrstr = gchar* function(const(gchar)* haystack, const(gchar)* needle);										
148         alias da_g_strrstr_len = gchar* function(const(gchar)* haystack, gssize haystack_len, const(gchar)* needle);			
149         alias da_g_str_has_suffix = gboolean function(const(gchar)* str, const(gchar)* suffix);									
150         alias da_g_str_has_prefix = gboolean function(const(gchar)* str, const(gchar)* prefix);									
151         alias da_g_strtod = gdouble function(const(gchar)* nptr, gchar** endptr);												
152         alias da_g_ascii_strtod = gdouble function(const(gchar)* nptr, gchar** endptr);											
153         alias da_g_ascii_strtoull = guint64 function(const(gchar)* nptr, gchar** endptr, guint base);							
154         alias da_g_ascii_strtoll = gint64 function(const(gchar)* nptr, gchar** endptr, guint base);								
155         alias da_g_ascii_dtostr = gchar* function(gchar* buffer, gint buf_len, gdouble d);										
156         alias da_g_ascii_formatd = gchar* function(gchar* buffer, gint buf_len, const(gchar)* format, gdouble d);				
157         alias da_g_strchug = gchar* function(gchar* string);																	
158         alias da_g_strchomp = gchar* function(gchar* string);																	
159         alias da_g_ascii_strcasecmp = gint function(const(gchar)* s1, const(gchar)* s2);										
160         alias da_g_ascii_strncasecmp = gint function(const(gchar)* s1, const(gchar)* s2, gsize n);								
161         alias da_g_ascii_strdown = gchar* function(const(gchar)* str, gssize len);												
162         alias da_g_ascii_strup = gchar* function(const(gchar)* str, gssize len);												
163         alias da_g_strcasecmp = gint function(const(gchar)* s1, const(gchar)* s2);												
164         alias da_g_strncasecmp = gint function(const(gchar)* s1, const(gchar)* s2, guint n);									
165         alias da_g_strdown = gchar* function(gchar* string);																	
166         alias da_g_strup = gchar* function(gchar* string);																		
167         alias da_g_strdup = gchar* function(const(gchar)* str);																	
168         alias da_g_strdup_printf = gchar* function(const(gchar)* format, ...);													
169         alias da_g_strdup_vprintf = gchar* function(const(gchar)* format, va_list args);										
170         alias da_g_strndup = gchar* function(const(gchar)* str, gsize n);														
171         alias da_g_strnfill = gchar* function(gsize length, gchar fill_char);													
172         alias da_g_strconcat = gchar* function(const(gchar)* string1, ...);														
173         alias da_g_strjoin = gchar* function(const(gchar)* separator, ...);														
174         alias da_g_strcompress = gchar* function(const(gchar)* source);															
175         alias da_g_strescape = gchar* function(const(gchar)* source, const(gchar)* exceptions);									
176         alias da_g_memdup = gpointer function(gconstpointer mem, guint byte_size);												
177         alias da_g_strsplit = gchar** function(const(gchar)* string, const(gchar)* delimiter, gint max_tokens);					
178         alias da_g_strsplit_set = gchar** function(const(gchar)* string, const(gchar)* delimiters, gint max_tokens);			
179         alias da_g_strjoinv = gchar* function(const(gchar)* separator, gchar** str_array);										
180         alias da_g_strfreev = void function(gchar** str_array);																	
181         alias da_g_strdupv = gchar** function(gchar** str_array);																
182         alias da_g_strv_length = guint function(gchar** str_array);																
183         alias da_g_stpcpy = gchar* function(gchar* dest, const(char)* src);														
184     }
185 
186     __gshared
187     {
188         da_g_ascii_tolower g_ascii_tolower; 
189         da_g_ascii_toupper g_ascii_toupper; 
190         da_g_ascii_digit_value g_ascii_digit_value; 
191         da_g_ascii_xdigit_value g_ascii_xdigit_value; 
192         da_g_strdelimit g_strdelimit; 
193         da_g_strcanon g_strcanon; 
194         da_g_strerror g_strerror; 
195         da_g_strsignal g_strsignal; 
196         da_g_strreverse g_strreverse; 
197         da_g_strlcpy g_strlcpy; 
198         da_g_strlcat g_strlcat; 
199         da_g_strstr_len g_strstr_len; 
200         da_g_strrstr g_strrstr; 
201         da_g_strrstr_len g_strrstr_len; 
202         da_g_str_has_suffix g_str_has_suffix; 
203         da_g_str_has_prefix g_str_has_prefix; 
204         da_g_strtod g_strtod; 
205         da_g_ascii_strtod g_ascii_strtod; 
206         da_g_ascii_strtoull g_ascii_strtoull; 
207         da_g_ascii_strtoll g_ascii_strtoll; 
208         da_g_ascii_dtostr g_ascii_dtostr; 
209         da_g_ascii_formatd g_ascii_formatd; 
210         da_g_strchug g_strchug; 
211         da_g_strchomp g_strchomp; 
212         da_g_ascii_strcasecmp g_ascii_strcasecmp; 
213         da_g_ascii_strncasecmp g_ascii_strncasecmp; 
214         da_g_ascii_strdown g_ascii_strdown; 
215         da_g_ascii_strup g_ascii_strup; 
216         da_g_strcasecmp g_strcasecmp; 
217         da_g_strncasecmp g_strncasecmp; 
218         da_g_strdown g_strdown; 
219         da_g_strup g_strup; 
220         da_g_strdup g_strdup; 
221         da_g_strdup_printf g_strdup_printf; 
222         da_g_strdup_vprintf g_strdup_vprintf; 
223         da_g_strndup g_strndup; 
224         da_g_strnfill g_strnfill; 
225         da_g_strconcat g_strconcat; 
226         da_g_strjoin g_strjoin; 
227         da_g_strcompress g_strcompress; 
228         da_g_strescape g_strescape; 
229         da_g_memdup g_memdup; 
230         da_g_strsplit g_strsplit; 
231         da_g_strsplit_set g_strsplit_set; 
232         da_g_strjoinv g_strjoinv; 
233         da_g_strfreev g_strfreev; 
234         da_g_strdupv g_strdupv; 
235         da_g_strv_length g_strv_length; 
236         da_g_stpcpy g_stpcpy; 
237     }
238 }